package com.jumi.microservice.material.service.impl;

import java.util.List;

import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import com.jumi.microservice.material.domain.JmGoodsTax;
import com.jumi.microservice.material.vo.JmGoodsTaxVo;
import com.jumi.microservice.material.domain.example.JmGoodsTaxExample;
import com.jumi.microservice.material.mapper.JmGoodsTaxMapper;
import com.jumi.microservice.material.service.GoodsTaxService;

/**
 * 服务实现层
 *
 * @author zhangy
 */
@Service
public class GoodsTaxServiceImpl implements GoodsTaxService
{

	@Autowired
	private JmGoodsTaxMapper goodsTaxMapper;

	/**
	 * 查询全部
	 */
	@Override
	public List<JmGoodsTax> findAll()
	{
		JmGoodsTaxExample example = new JmGoodsTaxExample();
		JmGoodsTaxExample.Criteria criteria = example.createCriteria();
		criteria.andIsDelEqualTo(0);
		return goodsTaxMapper.selectByExample(example);
	}

	/**
	 * 增加
	 */
	@Override
	@Transactional
	public int add(JmGoodsTax goodsTax)
	{
		return goodsTaxMapper.insertSelective(goodsTax);
	}

	/**
	 * 修改
	 */
	@Override
	@Transactional
	public int update(JmGoodsTax goodsTax)
	{
		return goodsTaxMapper.updateByPrimaryKeySelective(goodsTax);
	}

	/**
	 * 根据ID获取实体
	 *
	 * @param id
	 * @return
	 */
	@Override
	public JmGoodsTax findOne(Integer id)
	{
		return goodsTaxMapper.selectByPrimaryKey(id);
	}

	/**
	 * 条件
	 */
	@Override
	public List<JmGoodsTax> findPage(JmGoodsTaxVo goodsTaxVo)
	{
		JmGoodsTaxExample example = new JmGoodsTaxExample();
		JmGoodsTaxExample.Criteria criteria = example.createCriteria();

		criteria.andIsDelEqualTo(0);

		if (goodsTaxVo != null)
		{
			if (goodsTaxVo.getTaxCode() != null && goodsTaxVo.getTaxCode().length() > 0)
			{
				criteria.andTaxCodeLike("%" + goodsTaxVo.getTaxCode() + "%");
			}
			if (goodsTaxVo.getTaxName() != null && goodsTaxVo.getTaxName().length() > 0)
			{
				criteria.andTaxNameLike("%" + goodsTaxVo.getTaxName() + "%");
			}
			if (goodsTaxVo.getTaxShortName() != null && goodsTaxVo.getTaxShortName().length() > 0)
			{
				criteria.andTaxShortNameLike("%" + goodsTaxVo.getTaxShortName() + "%");
			}
			if (goodsTaxVo.getTaxSpecialMsg() != null && goodsTaxVo.getTaxSpecialMsg().length() > 0)
			{
				criteria.andTaxSpecialMsgLike("%" + goodsTaxVo.getTaxSpecialMsg() + "%");
			}
			if (goodsTaxVo.getTaxDetail() != null && goodsTaxVo.getTaxDetail().length() > 0)
			{
				criteria.andTaxDetailLike("%" + goodsTaxVo.getTaxDetail() + "%");
			}
			if (goodsTaxVo.getCreateBy() != null && goodsTaxVo.getCreateBy().length() > 0)
			{
				criteria.andCreateByLike("%" + goodsTaxVo.getCreateBy() + "%");
			}
			if (goodsTaxVo.getUpdateBy() != null && goodsTaxVo.getUpdateBy().length() > 0)
			{
				criteria.andUpdateByLike("%" + goodsTaxVo.getUpdateBy() + "%");
			}
		}
		return goodsTaxMapper.selectByExample(example);
	}

	@Override
	public Integer findTaxIdByTaxCode(String taxCode)
	{
		return goodsTaxMapper.findPrimaryKeyByTaxCode(taxCode);
	}

	public void importGoodsTaxExcel(Long uid, String name, List<JmGoodsTaxVo> list)
	{
		//人工控制表数据没问题->直接执行保存.
		for (JmGoodsTaxVo jmGoodsTaxVo : list)
		{
			jmGoodsTaxVo.setCreateBy(name);
			JmGoodsTax jmGoodsTax = new JmGoodsTax();
			jmGoodsTax.setCreateBy("admin");
			jmGoodsTax.setUpdateBy("admin");
			BeanUtils.copyProperties(jmGoodsTaxVo,jmGoodsTax);
			goodsTaxMapper.insertSelective(jmGoodsTax);
		}
	}

}































